#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <time.h>

//
void Print(int* a, int n);
//
void InsertSort(int* a, int n);

//
void ShellSort(int* a, int n);
//
void BubbleSort(int* a, int n);
//
void AdjustDown(int* a, int n, int parent);
void HeapSort(int* a, int n);
//
void SelectSort(int* a, int n);
//
void QuickSort1(int* a, int begin, int end);
void QuickSort2(int* a, int begin, int end);
void QuickSortNonR(int* a, int begin, int end);
//
void MergeSort(int* a, int begin, int end);
void MergeSortNonR(int* a, int begin, int end);